trying to implement all the additional stuff