added return true on success, false on failure