not entirely good at python yet.