adding some existing codes