specification and some definition for the environment