This stuff is probably all necessary