some working methods