renamed all types; exposed context;