made constructors and stuff