bit less code and more expandable..