first form logic implementation