o-broken code(started redesign)