modified requirements, added parameters