make it compatible with 5 parameter initialize