added documentation
changed how command calls work
removed unnecessary null check
added some methods