updated with better design :)