cleaned up input methods