How it should be implemented