merged generic into core