develpoed by me from scrach