Completing most type class implementation, working out remaining kinks