initial setup
testing and implementation