creating an optional version with strings instead of imethods