moved requirement to implementation