Refactored, added clean 'new'