working without builtins