various stuff + tests