better version system to allow dependencies