some basic functions added