Add more implementation. code complete