Code cleanup

* Learned python list comprehension, trimmed down some methods
* Changed some properties to be methods instead, makes more
  sense to calculate them when accessed instead of pre-populating