de/initialization methods are all optional