Added some variance annotations + cleaned up