seperate out logic