Moving implementations to header. Due to template use now