Added alot of documentation, and added modes to channesl