basic usage and requirements