remvoe version req
refactor classes