Updated with more feedback, added that this is a work in progress