added more type-checking