Since creating an application like TAP involves a lot of work, it's unreasonable for you to expect to recreate the entire thing just for your own project. It is, however, very reasonable to expect to be able to add your own modules to an application like TAP, providing that the application is documented well (this means architectural descriptions as well as good source code comments). There are two ways I commonly use to make such an application expandable.
The first method involves building a skeleton module that has all the rudimentary parts, but is missing the actual variables and algorithm code. Let's look at an example:
The problem with this approach is that the skeleton is rather thin and doesn't really provide much guidance.
The second method is to take an existing module that does something like what you need and modify a copy of it for your requirements. The only drawback to this is that you must be able to follow the design of the original module. Again, good documentation helps a lot.