the compose methods and tests