implementing more features...