making some changes decouping different types from another