new disign implemented