toward a better version - not funtional yet