some necessary and unnecessary stuff