makes fucntional enter, exit, update methods