better design :3