final submitted solution
deletet trash