Simplify the whole code and make it beautiful
Support all the methods
Exclude captions from kwargs argument