this should probably return bool (true on success)