cleaned up source