Data logic in it's own class