move logic to user method