This part can be improved easily... I guess I'll just do it for you.