several functional additions