still bug fixing (bringing more logic into actory)