sepalate into small methods