not really working seamlessly yet, still have more features to add