added input requirements