public static function now(string $type = 'datetime', array $options = []) {
		// todo: convert to proper timezone, important!!!
		list($msec, $time) = explode(" ", microtime());
		if (!empty($options['add_seconds'])) {
			$time+= $options['add_seconds'];
		}
		// if we need to format
		if (!empty($options['format'])) {
			return self::{$type}($time + $msec, $options);
		}
		// rendering
		switch ($type) {
			case 'unix':
				return $time;
				break;
			case 'timestamp':
				return date('Y-m-d H:i:s', $time) . '.' . str_pad(round($msec * 1000000, 0), 6, '0', STR_PAD_LEFT);
				break;
			case 'time':
				return date('H:i:s', $time);
				break;
			case 'date':
				return date('Y-m-d', $time);
				break;
			case 'datetime':
			default:
				return date('Y-m-d H:i:s', $time);
		}
	}