Added a lot of basic/not-so-basic stuff