Initial Work and add some helper