Cleaned Up, Added more Functions and Abstraction