edited and cleaned up :-D