added some extra functionality