comleted, need fix few bugs and layout