runable version. validation needed