add needed functions