implement a simple and clear way