added initializers and stuff