Refactor and some convinience methods were added