making it scalable for the user