added optional weird stuff (probably not to be included)