design almost done. validation too.